package com.dp.client.views.paquete;

import java.util.List;

import com.dp.client.dto.AlmacenDTO;
import com.dp.client.servicios.almacenes.IServiciosAlmacen;
import com.dp.client.servicios.almacenes.IServiciosAlmacenAsync;
import com.dp.client.util.Alerts;
import com.dp.client.views.vuelo.VuelosPrincipal;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.TabLayoutPanel;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.ScrollPanel;

public class PaquetePrincipal extends Composite {
	private VerticalPanel verticalPanel;
	private ListBox cboxAlmacen;
	private HorizontalPanel horizontalPanel;
	private Label lblAlmacen;
	private TabLayoutPanel tabLayoutOpciones;
	private RegistraPaqueteNuevo paqueteNuevo;
	private ScrollPanel scrollPanel;
	public PaquetePrincipal() {
		
		verticalPanel = new VerticalPanel();
		verticalPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
		verticalPanel.setSpacing(5);
		initWidget(verticalPanel);
		verticalPanel.setSize("auto","auto");
		
		horizontalPanel = new HorizontalPanel();
		horizontalPanel.setSpacing(5);
		verticalPanel.add(horizontalPanel);
		horizontalPanel.setSize("auto", "auto");
		
		lblAlmacen = new Label("Almacen :");
		horizontalPanel.add(lblAlmacen);
		
		cboxAlmacen = new ListBox();
		horizontalPanel.add(cboxAlmacen);
		cboxAlmacen.setSize("179px", "28px");
		
		scrollPanel = new ScrollPanel();
		verticalPanel.add(scrollPanel);
		scrollPanel.setSize("870px", "700px");
		
		tabLayoutOpciones = new TabLayoutPanel(1.5, Unit.EM);
		scrollPanel.setWidget(tabLayoutOpciones);
		tabLayoutOpciones.setSize("1000px", "700px");
		paqueteNuevo = new RegistraPaqueteNuevo( this );
		VuelosPrincipal vuelos = new VuelosPrincipal( this );
		tabLayoutOpciones.add( paqueteNuevo , "Paquete Nuevo");
		tabLayoutOpciones.add( vuelos , "Vuelos de Almacen" );
		paqueteNuevo.setSize("100%", "100%");
		setSize("745px", "483px");
		
		llenarAlmacenes();
	}
	
	public void llenarAlmacenes(){
		
		IServiciosAlmacenAsync serviciosAlmacen = GWT.create(IServiciosAlmacen.class);
		serviciosAlmacen.listAlmacenes(new AsyncCallback<List<AlmacenDTO>>(){
			public void onSuccess(List <AlmacenDTO> result){
				cboxAlmacen.clear();
				cboxAlmacen.addItem("Seleccione",null,0+"");
				cboxAlmacen.setSelectedIndex(0);
				for (AlmacenDTO a: result ){
					cboxAlmacen.addItem(a.getDescripcion(),null,a.getId()+"");
				}
			}

			@Override
			public void onFailure(Throwable caught) {
				Alerts.dialogErrorConexion();
				
			}
		});
	}
	
	public int getIdAlmacen(){
		int indice=cboxAlmacen.getSelectedIndex() == -1 ? 0:cboxAlmacen.getSelectedIndex();
		return Integer.parseInt( cboxAlmacen.getValue( indice ) );
	}

	public void limpiar() {
		llenarAlmacenes();
		paqueteNuevo.limpiar();
	}
}
